package cn.tedu.mimall.product.mapper;

import cn.tedu.mimall.product.pojo.entity.ProductCart;
import cn.tedu.mimall.product.pojo.vo.ProductCartListItemVO;
import cn.tedu.mimall.product.pojo.vo.ProductCartStandardVO;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface ProductCartMapper {
    /**
     * 添加商品与购物车关联
     * @param productCart 商品与购物车关联实体类
     * @return 添加数量
     */
    int insert(ProductCart productCart);

    /**
     * 根据商品与购物车关联id删除商品与购物车关联数据
     * @param id 商品与购物车关联id
     * @return 删除数量
     */
    int deleteById(Long id);

    /**
     * 根据商品与购物车关联id修改商品与购物车关联数据
     * @param productCart 商品与购物车关联实体类
     * @return 修改数量
     */
    int updateById(ProductCart productCart);

    /**
     * 查询商品与购物车关联数据条数
     * @return 商品与购物车关联数据条数
     */
    int count();

    /**
     * 根据id查询商品与购物车关联数据
     * @param id 商品与购物车关联id
     * @return 匹配商品与购物车关联数据,没有时返回null
     */
    ProductCartStandardVO getStandardById(Long id);

    /**
     * 查询商品与购物车关联列表
     * @return 商品与购物车关联数据列表
     */
    List<ProductCartListItemVO> list();
}
